package com.system.queue.bean;

import com.system.queue.utils.JsonUtil;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * @className: PageBean
 * @description: TODO 类描述
 * @author: Kuangkeli
 * @date: 2023/12/07 20:10
 **/
@Data
@Getter
@Setter
@NoArgsConstructor
public class PageBean<T> {
    /**
     * 每页显示的条数
     */
    private Integer pageSize;
    /**
     * 当前的页码
     */
    private Integer pageNum;
    /**
     * 一共有多少条记录
     */
    private Long total;
    /**
     * 一共有多少页
     */
    private Integer pages;
    /**
     * 每一页所显示的数据
     */
    private List<T> result;

    /**
     * 分页请求路径
     */
    private String url;

    /**
     * 将spring data的Page对象转换成我们自定义的PageBean对象
     * @param page
     */
    public PageBean(Page<T> page) {
        this.pageSize = page.getSize();
        this.pageNum = page.getNumber();
        this.total = page.getTotalElements();
        this.pages = page.getTotalPages();
        this.result = page.getContent();
    }

    @Override
    public String toString() {
        return JsonUtil.obj2String(this);
    }
}
